/*
 * @Author: your name
 * @Date: 2021-09-21 14:51:09
 * @LastEditTime: 2021-09-22 09:11:26
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \数据结构\队列\数组队列\queue.h
 */
#ifndef _QUEUE_H_
#define _QUEUE_H_

typedef int QElemType;

typedef struct queue
{
    //队容量
    int queueSize;
    //队首 指向队首元素
    int front;
    //对尾 指向队尾元素下一个位置
    int rear;
    //指针
    QElemType * array;
}QUEUE;

//创建队列
QUEUE * createQueue(int queueSize);
//销毁队列
bool freeQueue(QUEUE *q);
//入队
bool EnQueue(QUEUE *q, QElemType elem);
//出队
QElemType DeQueue(QUEUE *q);
//判空
bool isEmpty(QUEUE *q);
//判满
bool isFull(QUEUE *q);
//清空队列
bool clearQueue(QUEUE *q);
//队列长度
int QueueLength(QUEUE *q);

#endif